//
//  ViewController.m
//  通知（NSNotification）
//
//  Created by apple on 15/8/28.
//  Copyright (c) 2015年 戴维营. All rights reserved.
//

#import "ViewController.h"
#import "Person.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
// --------------------------------------------------------------------
    
    //通知，[在有些场景下，需要给某些（可以是一对多）对象发送消息（调用方法），但是在当前场景下没有指针指向这些对象。]

    
    
//    通知名可以任意起，方法必须在我们自己定义的类中实现；
//    Person *ake = [Person new];
//
//    //    阿柯关注“出游”的信息；
//    [[NSNotificationCenter defaultCenter] addObserver:ake selector:@selector(didStartFuck:) name:@"abc" object:nil];
//    
////    方怡关注“出游”的信息；
//    Person *fangyi = [Person new];
//    [[NSNotificationCenter defaultCenter] addObserver:fangyi selector:@selector(didStartFuck:) name:@"abc" object:nil];
//    
//    双儿关注“出游”的信息；
    Person *shuanger = [Person new];
    [[NSNotificationCenter defaultCenter] addObserver:shuanger selector:@selector(didStartFuck:) name:@"abc" object:nil];
    
    [[NSNotificationCenter defaultCenter] addObserver:shuanger selector:@selector(motherFuck:) name:@"通知" object:nil];
    
//    “出游”信息的发布；
    
    [[NSNotificationCenter defaultCenter] postNotificationName:@"abc" object:nil];

    
//    -----    -----    -----    -----    -----    -----    -----    -----
//    在不关注时，或者在观察者销毁前应该移除观察者；
    
    
//－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
#if 0
    
    只要消息发布了就一定会先执行，当消息分布与移除观察者同时存在时，哪个在前，就先执行哪个！！


#endif
    
    
//    双儿不在关注任何通知；
    [[NSNotificationCenter defaultCenter] removeObserver:shuanger];
    
    
//    双儿不在关注“”
    [[NSNotificationCenter defaultCenter] postNotificationName:@"通知" object:nil];

    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
